package com.edu.service;

import com.edu.pojo.EduTeacher;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * 教师接口
 *
 * @author YJF
 */
public interface EduTeacherService {

    /**
     * 查找登录账号
     *
     * @param eduTeacher 要查询的登录账号
     * @return 教师信息
     */
    EduTeacher findUser(EduTeacher eduTeacher);

    /**
     * 根据条件分页查询管理员用户
     *
     * @param page       页码
     * @param size       显示条数
     * @param eduTeacher 查询条件
     * @return 分页搜索结果集
     */
    PageInfo<EduTeacher> findRoles(String page, String size, EduTeacher eduTeacher);

    /**
     * 根据姓名和身份证给教师添加管理员用户
     *
     * @param eduTeacher 更新信息
     * @return 状态
     */
    int addUser(EduTeacher eduTeacher);

    /**
     * 分页条件查询教师
     *
     * @param page       页码
     * @param size       条数
     * @param eduTeacher 查询条件
     * @return 结果集
     */
    PageInfo<EduTeacher> findTec(String page, String size, EduTeacher eduTeacher);

    /**
     * 通过教师姓名查找教师
     *
     * @param curBy 页码
     * @return 所有匹配的教师
     */
    List<Integer> findTecByName(String curBy);

    /**
     * 根据教师ID查询用户信息
     *
     * @param id 教师ID
     * @return 查询到的用户信息
     */
    EduTeacher findRoleById(Integer id);

    /**
     * 根据教师ID重置密码
     *
     * @param id 教师ID
     * @return 返回成功的编码
     */
    int rePwd(Integer id);

    /**
     * 根据教师ID修改教师信息
     *
     * @param eduTeacher 教师信息
     * @return 返回成功的编码
     */
    int updateRole(EduTeacher eduTeacher);

    /**
     * 根据教师ID修改教师权限
     *
     * @param teacher 条件
     * @return 响应编码
     */
    int setPower(EduTeacher teacher);

    /**
     * 根据教师ID删除教师权限
     *
     * @param eduTeacher 条件
     * @return 响应编码
     */
    int delPower(EduTeacher eduTeacher);

    /**
     * 添加教师信息
     *
     * @param eduTeacher 待添加的教师信息
     * @return 响应状态码
     */
    int addTec(EduTeacher eduTeacher);

    /**
     * 根据教师ID查询教师个人信息
     *
     * @param tecId 教师ID
     * @return 教师个人信息
     */
    EduTeacher findTecById(Long tecId);

    /**
     * 更新教师信息
     *
     * @param eduTeacher 待更新的教师信息
     * @return 响应状态码
     */
    int updateTec(EduTeacher eduTeacher);

    /**
     * 根据教师ID删除教师信息
     *
     * @param tecId 教师ID
     * @return 返回响应状态码
     */
    int delById(Long tecId);

    /**
     * 查询所有教师信息
     *
     * @return 教师信息集合
     */
    List<EduTeacher> findAll();
}
